import { get, post } from '@/utils/request'
import type { LoginParams, UserInfo } from '@/types/user'

/**
 * 用户登录
 * @param params 登录参数
 * @returns 登录结果
 */
export const login = (params: LoginParams) => {
  return post<{ token: string; user: UserInfo }>('/v1/auth/login', params)
}

/**
 * 用户注册
 * @param params 注册参数
 * @returns 注册结果
 */
export const register = (params: any) => {
  return post<{ token: string; user: UserInfo }>('/v1/auth/register', params)
}

/**
 * 用户登出
 * @returns 登出结果
 */
export const logout = () => {
  return post<void>('/v1/auth/logout')
}

/**
 * 获取用户信息
 * @returns 用户信息
 */
export const getUserInfo = () => {
  return get<UserInfo>('/v1/user/info')
}

/**
 * 更新用户信息
 * @param params 用户信息
 * @returns 更新结果
 */
export const updateUserInfo = (params: Partial<UserInfo>) => {
  return post<UserInfo>('/v1/user/update', params)
}

/**
 * 修改密码
 * @param params 密码参数
 * @returns 修改结果
 */
export const changePassword = (params: { oldPassword: string; newPassword: string }) => {
  return post<void>('/v1/user/change-password', params)
}

/**
 * 重置密码
 * @param params 重置参数
 * @returns 重置结果
 */
export const resetPassword = (params: { email: string; code: string; newPassword: string }) => {
  return post<void>('/v1/auth/reset-password', params)
}

/**
 * 发送验证码
 * @param email 邮箱
 * @returns 发送结果
 */
export const sendVerificationCode = (email: string) => {
  return post<void>('/v1/auth/send-code', { email })
} 